Dynamic random access memory (DRAM) is the principal type of memory used in most applications such as personal computers (PCS). When compared, for example, to static random access memory (SRAM), DRAM is less expensive, consumes substantially less power, and provides more bits in the same chip space (i.e. has a higher cell density). DRAM is normally used to construct those memory subsystems, such as system memories and display frame buffers, where power conservation and high cell density are more critical than speed. In most computing systems, it is these subsystems which dominate the system architecture, thus making DRAM the prevalent type of memory device on the market.
Notwithstanding these significant advantages, DRAMs are also subject to significant restraints due to the manner in which they must be constructed and operated. Specifically, since each cell stores data as charge on a capacitor (i.e. charged to a predetermined voltage for a logic 1 and discharged to approximately 0 volts for a logic 0), the length of time a bit, and in particular a logic 1 bit, can be stored in a given cell is a function of the ability of the capacitor to retain charge. Charge retention, and consequently data integrity is in turn a function of charge leakage.
Almost all DRAMs maintain data integrity through the periodic refresh of the memory cells storing logic 1 data, which has deteriorated in voltage as charge has leaked off the capacitor, back to the full logic 1 storage voltage. This is essentially done by performing read operations to the cell array on a row by row basis (the latching and restore functions of the sense amplifiers returning all voltages to their original levels). Depending on the refresh scheme, all the rows in the array or subarray may be refreshed by stepping though the rows in a single sequence or by distributing the refresh of smaller groups of rows of the array between read and write operations.
In the system environment, the need to refresh the system DRAM presents some substantial problems. In particular, during the period in which the DRAM is being refreshed, the processor, core logic, or controller managing the given memory, locks out all accesses to the memory from anywhere in the system. While the timing of the precharge period can be adjusted, for example by the CPU, to meet overall system needs, the maximum period between refreshes for a given device cannot be exceeded without the risk of data loss.
If the refresh can be "hidden", the interface between the DRAM and the remainder of the system will emulate that of an SRAM. In other words, the system, with proper timing, can perform a continuous sequence of accesses to memory without periodic interruption for refresh. Given the criticality of the problem of refresh, a need has arisen to find efficient means of hiding refresh.